<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="AAuto" /> 
<title>获取DOM节点对象</title>
<link href="../style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="maincontent">
<h1>获取DOM节点对象</h1>
 <div class="desc">参考:<a href="../libraries/std/web/html.html"></a> <a href="webform.html">创建web窗体</a> <a href="html.html#dom">什么是DOM</a> <a href="ele.html">ele节点属性和方法</a></div>
  <div>
    <h2>DOM简介</h2>
    <p>网页上是一个个的HTML节点表示的DOM节点对象,节点象一颗树,所有节点的根是 wb.document对象,一个节点可以包含另外的一个或多个节点,在web窗体中,我们通过获取节点对象就可以读写网页上任意节点的数据、并控制这些节点的行为，从而实现自动化的目的。</p>
    <div class="tip">&nbsp;本手册中约定使用 wb变量名表示web.form类创建的web窗体对象.使用ele表示web窗体中的元素对象,这也是AAuto中默认约定具有特殊意义的变量名,不应将这些默认变量名用于其他目的.</div>
    <p>在获取节点对象以前,我们必须调用<a href="control.html#go">wb.go</a>打开网页,并调用<a href="wait.html#wait">wb.wait</a>等待网页下载完比并完全打开.</p>
  </div>
<div>
  <h2>wb.document<a name="document" id="document"></a></h2>
  <p>&nbsp;</p>
  wb.document是网页上所有节点对象的根节点,这是一个com对象,可以使用com.DumpTypeInfo函数列出该对象的成员,请参考HTML DOM文档以了解document的成员.
  .
</p>
  <pre>io.open()

com.DumpTypeInfo( wb.document )</pre>
</div>
<div>
  <h2>wb.getDoc<a name="getDoc" id="getDoc"></a></h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>doc = wb.getDoc( 框架名 )</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br />
  获取指定框架窗口的document对象,框架名可省略.<br />
  如果无参数,该函数返回 wb.document </p>
  <p>如果页面未成功创建文档对象,该函数返回null,调用该函数以前必须调用 <a href="wait.html#wait">wb.wait()</a> 等待网页下载完毕.<br />
而使用 <a href="wait.html#waitDoc">wb.waitDoc()</a> 则实现等待该节点下载并返回该节点的功能,而无须等待整个网页下载完.</p>
</div>
<div>
  <h2>wb.body<a name="body" id="body"></a></h2>
  <p>&nbsp;</p>
  wb.body是网页上所有可见元素的根节点,这是一个element对象,可以使用com.DumpTypeInfo函数列出该对象的成员
  <pre>io.open()

com.DumpTypeInfo( wb.body )</pre>
</div>
<div>
  <h2>wb.getEle<a name="getEle" id="getEle"></a></h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>ele = wb.getEle( HTML节点的ID名name, 框架名 )</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br />
    该函数查找并返回页面上的element节点对象,<br />
    该对象同样是一个com对象,可以使用com.DumpTypeInfo函数列出该对象的成员.</p>
  <p>可以通过第二个参数指定框架窗口,该参数可以省略.<br />
    <br />
调用wb.getEle之前必须调用 <a href="wait.html#wait">wb.wait()</a> 等待网页下载完毕.<br />
而使用 <a href="wait.html#waitEle">wb.waitEle()</a> 则实现等待该节点下载并返回该节点的功能,而无须等待整个网页下载完.<br />
  </p>
</div>
<div>
  <h2>wb.fromPoint</h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>ele = wb.fromPoint( x坐标,y坐标, 框架名 )</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br />
    自指定的窗口坐标获取节点,</p>
  <p>可以通过第三个参数指定框架窗口,该参数可以省略.<br />
  </p>
</div>
<div>
  <h2>wb.getEles <a name="getEles" id="getEles"></a></h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>tele = wb.getEles( HTML节点的name属性, 框架名 )</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
    <br />
    该函数返回网页上所有name属性相同的同名节点.返回值为一个com数组.注意com数组使用()括号读取成员而不是使用索引操作符[]<br />
    <br />
    可以通过第二个参数指定框架窗口,该参数可以省略.</p>
  <p><strong>3、调用示例：</strong><br />
  </p>
  <pre><span class="comment">//....省略创建web窗体的代码,请在快手中点击&quot;主菜单-&gt;新建文件-&gt;新建web窗体&quot;</span>

tele = wb.getEles( HTML节点的name属性, 框架名 )
tele(1).setAttribute(&quot;属性名字&quot;, &quot;修改第一个节点属性值&quot;)
  </pre>
  <p></p>
</div>
<div>
  <h2>wb.eachAll</h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>
for(k,ele in wb.eachAll( HTML标记,框加名) ){
	

}</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
  </p>
  <p>wb.eachAll创建一个用于for...in语句的迭代器,用以遍历页面上指定的节点.<br />
  参数一指定<a href="html.html">HTML标记 </a>可以通过第二个参数指定框架窗口,该参数可以省略.</p>
  <p><strong>3、调用示例：</strong><br />
  </p>
  <pre>
<span class="comment">//....省略创建web窗体的代码,请在快手中点击&quot;主菜单-&gt;新建文件-&gt;新建web窗体&quot;</span>

io.open()
for(k,ele in wb.eachAll( &quot;a&quot; ) ){
	
	io.print( ele.innerHTML )<span class="comment"> //输出页面上所有的超链接包含的HTML</span>
}

  </pre>
  <p></p>
</div>
<div>
  <h2>wb.eachLinks</h2>
  <p>&nbsp;</p>
  <p><strong>1、函数原型：</strong><br />
  </p>
  <pre>
for(k,ele in wb.eachLinks( 框架名) ){
	

}</pre>
  <p><br />
    <strong>2、函数说明：</strong><br />
  </p>
  <p>此函数类似wb.eachAll,无需指定HTML标记,默认列出页面上所有的超链接.</p>
  <p><strong>3、调用示例：</strong><br />
  </p>
  <pre>
<span class="comment">//....省略创建web窗体的代码,请在快手中点击&quot;主菜单-&gt;新建文件-&gt;新建web窗体&quot;</span>

io.open()
for(k,ele in wb.eachLinks() ){
	
	io.print( ele.innerHTML )<span class="comment"> //输出页面上所有的超链接包含的HTML</span>
}

  </pre>
  <p></p>
</div>
 
</div></body>
</html>